import os
import xml.etree.ElementTree as ET
ann_dir='datasets/VOC2007/Annotations'
img_dir='datasets/VOC2007/JPEGImages'

annos=os.listdir(ann_dir)
class_names = ('一次性快餐盒','书籍纸张','充电宝',
                  '剩饭剩菜' ,'包','垃圾桶','塑料器皿','塑料玩具','塑料衣架',
                   '大骨头','干电池','快递纸袋','插头电线','旧衣服','易拉罐',
                   '枕头','果皮果肉','毛绒玩具','污损塑料','污损用纸','洗护用品',
                   '烟蒂','牙签','玻璃器皿','砧板','筷子','纸盒纸箱','花盆',
                   '茶叶渣','菜帮菜叶','蛋壳','调料瓶','软膏','过期药物',
                   '酒瓶','金属厨具','金属器皿','金属食品罐','锅','陶瓷器皿',
                   '鞋','食用油桶','饮料瓶','鱼骨')
class_dict = {class_name: 0 for i, class_name in enumerate(class_names)}
for ann in annos:
    annotation_file = os.path.join(ann_dir,ann)
    objects = ET.parse(annotation_file).findall("object")
    for obj in objects:
        class_name = obj.find('name').text.lower().strip()
        class_dict[class_name]+=1
print(class_dict)
print(sorted(class_dict.items(),key=lambda item:item[1],reverse=True))
'''
ratio={'一次性快餐盒': 329, '书籍纸张': 196, '充电宝': 410, '剩饭剩菜': 1416, '包': 442, '垃圾桶': 108, '塑料器皿': 666, '塑料玩具': 439,
       '塑料衣架': 325, '大骨头': 413, '干电池': 445, '快递纸袋': 248, '插头电线': 1277, '旧衣服': 394, '易拉罐': 414, '枕头': 382, '果皮果肉': 1052,
       '毛绒玩具': 655, '污损塑料': 1237, '污损用纸': 227, '洗护用品': 1030, '烟蒂': 433, '牙签': 156, '玻璃器皿': 878, '砧板': 466, '筷子': 815,
       '纸盒纸箱': 623, '花盆': 211, '茶叶渣': 409, '菜帮菜叶': 984, '蛋壳': 458, '调料瓶': 543, '软膏': 418, '过期药物': 710, '酒瓶': 346,
       '金属厨具': 284, '金属器皿': 341, '金属食品罐': 400, '锅': 531, '陶瓷器皿': 2662, '鞋': 463, '食用油桶': 446, '饮料瓶': 371, '鱼骨': 525
       }
sort_ratio=[('陶瓷器皿', 2662), ('剩饭剩菜', 1416), ('插头电线', 1277), ('污损塑料', 1237), ('果皮果肉', 1052),
            ('洗护用品', 1030), ('菜帮菜叶', 984), ('玻璃器皿', 878), ('筷子', 815), ('过期药物', 710),
            ('塑料器皿', 666), ('毛绒玩具', 655), ('纸盒纸箱', 623), ('调料瓶', 543), ('锅', 531),
            ('鱼骨', 525), ('砧板', 466), ('鞋', 463), ('蛋壳', 458), ('食用油桶', 446),
            ('干电池', 445), ('包', 442), ('塑料玩具', 439), ('烟蒂', 433), ('软膏', 418),
            ('易拉罐', 414), ('大骨头', 413), ('充电宝', 410), ('茶叶渣', 409), ('金属食品罐', 400),
            ('旧衣服', 394), ('枕头', 382), ('饮料瓶', 371), ('酒瓶', 346), ('金属器皿', 341),
            ('一次性快餐盒', 329), ('塑料衣架', 325), ('金属厨具', 284), ('快递纸袋', 248), ('污损用纸', 227),
            ('花盆', 211), ('书籍纸张', 196), ('牙签', 156), ('垃圾桶', 108)]

ratio=sorted(ratio.items(),key=lambda item:item[1],reverse=True)
aug_need=[]
for i in range(len(ratio)):
    if ratio[i][1]>1000:
        aug_need.append(ratio[i][0])
print(ratio)
print(aug_need)
'''